package com.ronin.common.dao;

import java.util.List;

import com.ronin.common.model.Kullanici;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;


@Repository
public class KullaniciDAO implements IKullaniciDAO {

    @Autowired
    private SessionFactory sessionFactory;

    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    public void addKullanici(Kullanici user) {
        getSessionFactory().getCurrentSession().save(user);
    }

    public void deleteKullanici(Kullanici user) {
        getSessionFactory().getCurrentSession().delete(user);
    }

    public void updateKullanici(Kullanici user) {
        getSessionFactory().getCurrentSession().update(user);
    }

    public Kullanici getKullaniciById(int id) {
        List list = getSessionFactory().getCurrentSession()
                .createQuery("from Kullanici where id=?")
                .setParameter(0, id).list();
        return (Kullanici) list.get(0);
    }
    
    public Kullanici getKullaniciByUsername(String username) {
        List list = getSessionFactory().getCurrentSession()
                .createQuery("from Kullanici where username=?")
                .setParameter(0, username).list();
        if(list.size()>0){
            return (Kullanici) list.get(0);
        }
        return null;
    }

    public List<Kullanici> getKullaniciList() {
        List list = getSessionFactory().getCurrentSession().createQuery("from Kullanici").setCacheable(true).list();
        return list;
    }
}
